package jzbank.common.log;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;

/**
 * @auther admin闫
 * @Descriptopn
 * @date 2023/9/27 21:37
 */

public class ConsoleCapture extends OutputStream {
    private StringBuilder buffer = new StringBuilder();
    private PrintStream originalOut;

    public ConsoleCapture() {
        originalOut = System.out;
        System.setOut(new PrintStream(this));
    }

    @Override
    public void write(int b) throws IOException {
        buffer.append((char) b);
        // 当捕获到换行符时，将缓冲区的内容记录到日志或执行其他操作
        if (b == '\n') {
            String logMessage = buffer.toString();
            // 在这里将 logMessage 记录到日志文件或执行其他操作
            System.out.print(logMessage); // 也可以继续将日志信息输出到控制台
            buffer.setLength(0); // 清空缓冲区
        }
    }

    public void stopCapture() {
        System.setOut(originalOut);
    }
}